package example2_40;

import java.util.HashMap;
import java.util.Map;

/**
 * XML注册读取器 该类继承了注册读取器接口,并模拟实现了读取注册对象信息的方法
 */
public class XMLSourceReader implements SourceReader {
	/**
	 * 实现读取注册对象信息方法 此处只是模拟测试使用,感兴趣的同学可以自己书写通过配置文件读取的实现
	 */
	@Override
	public Map<String, BeanInfo> loadBeans(String filePath) {
		// 初始化一个对象信息
		BeanInfo beaninfo = new BeanInfo();
		beaninfo.setId("Person");
		beaninfo.setType("experiment_01_Pram.Person");
		beaninfo.addProperty("name", "Tim");
		Map<String, BeanInfo> beans = new HashMap<String, BeanInfo>(); // 初始化一个对象信息Map
		beans.put("Person", beaninfo); // 将对象信息注册到对象信息MAP中
		return beans; // 返回对象信息MAP
	}
}
// http://www.mamicode.com/info-detail-2502009.html
// BeanInfo info = new BeanInfo(); //注册对象的info
// InputStream is =
// XMLContext.class.getClassLoader().getResourceAsStream(filePath);//获取xml文件
// SAXReader reader = new SAXReader();
// Map<String,BeanInfo> beanMap = new HashMap<>();
// try {
// Document document = reader.read(is);
// Element root = document.getRootElement(); //获取根标签，这里是beans
// //遍历所有bean
// for(Iterator iterator = root.elementIterator("bean");iterator.hasNext();){
// Element element = (Element)iterator.next();
// //获取id和class
// Attribute id = element.attribute("id");
// Attribute clazzName = element.attribute("class");
// info.setId(id.getText());
// info.setType(clazzName.getText());
// //遍历该bean的property
// for(Iterator it=element.elementIterator("property");it.hasNext();){
// Element tmp = (Element)it.next();
// //获取name和value
// Attribute name = tmp.attribute("name");
// Attribute value = tmp.attribute("value");
// info.addProperty(name.getText(),value.getText());
// }
// beanMap.put(id.getText(),info);
// }
// } catch (DocumentException e) {
// e.printStackTrace();
// }
// return beanMap;
// }
